Early versions of many popular software application programs were "command line oriented." These programs displayed a prompt on a display screen and required the user to enter a command word from a keyboard. The command was specific to the application program and was typically in an unfamiliar language. Further, the command often required additional parameters to be entered in order to control the application program to perform a particular function. These applications were often difficult to use and very difficult to learn since the user had to learn the large set of commands which were specific to the particular application program. The commands were often not intuitive in their operation.
Later versions of programs used particular keystrokes or combinations of keystrokes to control the program. For example, a program might use "function" keys or combinations of function keys to perform specific operations. However, some programs had a large number of functions, and, accordingly, many keystroke combinations had to be learned by the user, again making a difficult task of learning to use the program.
The use of graphical user interfaces greatly reduced the learning time of many programs and made the task of learning to use such a program much less daunting. When using a graphical user interface, graphic images are displayed on a screen. The images can represent entire operations or steps in an operation. These images can include icons, buttons and other controls which are drawn on the screen by the application program. The user manipulates the graphic images by selecting an image by means of a pointing device, such as a mouse, and then performing another operation such as clicking a mouse button. The graphic images can be changed during the operation of the program to represent the current program operation. Consequently, users do not have to memorize a large set of commands or keystroke combinations.
However, even as application programs became easier to use, they were also becoming more and more complex with additional complicated features that often have a sequence of different steps which require manipulating a sequence of graphic images to perform a particular function. Consequently, users still have problems in remembering the correct sequence of steps to perform a given operation. Accordingly, it has been common practice to include "online" help systems in such programs. These help systems were originally textual descriptions of the steps involved in a particular procedure. The text was displayed on the screen when requested by the user. Some on-line help systems were context driven in that the specific text which appeared when requested by the user was related to the operation which was being performed.
Such text-based systems worked well in character-based environments. However, in programs with graphical user interfaces, text based help systems fail to provide users with the information that helps them learn how to use the program in the best manner. In particular, with text based help systems, it is often difficult to describe areas of the screen, and particular graphic images in order to effectively identify these items. Therefore, it is often necessary to give graphic images names, thereby defeating the purpose of using a graphic image in the first place.
Accordingly, many online help systems have changed to a hybrid text and graphic system in which graphic images of particular icons and buttons are included in the help window rather than a textual description of these items. In other systems, an image of a portion of the display screen is provided. The image has "hot spots" which can be selected by a user. When a hot spot is selected, a textual description of the selected area appears. In this manner, a user can more easily identify the items on the screen.
However, such systems still provide very limited help to the user as it is often not obvious in which sequence to operate controls during a particular operation. Further, it is also sometimes difficult to describe how to manipulate the control, for example, whether the control should be clicked, double-clicked or dragged.
Accordingly, demonstration systems have been developed which generate an animated display of a set of procedural steps so that the user can watch the steps being performed on the screen. Traditionally, these animated demonstrations or demos have been produced by generating a set of bitmap images of the display screen with one image for each step in the operation. Sometimes, several images are used to demonstrate a single step. One of the problems with such animated demonstrations is that many graphical user interfaces can be highly customized by the user. Typically, the bitmapped images which comprise the animated demonstration are generated with the system shown in a particular standard configuration. If the user's configuration differs considerably than the standard configuration, it may confusing to the user to determine where icons or buttons are located on his customized screen. In addition, the sequence of steps shown in the animated demonstration may have to be changed so that the sequence of steps corresponds to the user's actual screen display.
Another problem with all of the traditional animated help demonstrations is that the bitmapped graphics must be redone if the product is to be "localized" or customized for a particular country. Generally, screen images include some text which must be translated into a local language. Often the graphic images are arranged in standardized layouts for a particular country. When an animated demonstration is localized, the text present on the screen must first be translated and then the bitmapped graphics must be regenerated with the translated text.
Accordingly, there is a need for a mechanism for generating animated help demonstrations which generates demonstrations with the user's customized screen display.
There is a further need for a mechanism for generating animated help demonstrations which can be quickly localized.
There is still a further need for a mechanism for generating animated help demonstrations which can be easily and quickly used.